<html>
<meta charset="UTF-8">
<meta name="referrer" content="no-referrer">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<form id="myForm" method="post" action="/import/order/deal" enctype="multipart/form-data">
    <input type="file" id="file" name="file" placeholder="请选择文件"/>
    <label>
        <input type="text" name="ruleSheet" id="ruleSheet" value="时间分类" placeholder="规则Sheet名称"/>
    </label>
    <label>
        <input type="text" name="dataSheet" id="dataSheet"  value="3月销售数据" placeholder="数据Sheet名称"/>
    </label>

    <input type="submit"  value="提交" />
</form>
<script>
    $(document).ready(function() {
        $('#myForm').submit(function(event) {
            event.preventDefault(); // 阻止默认的表单提交行为

            // 创建 FormData 对象
            var formData = new FormData(this);

            // 发送 AJAX 请求
            $.ajax({
                url: $(this).attr('action'), // 使用表单的 action 属性作为请求 URL
                type: $(this).attr('method'), // 使用表单的 method 属性作为请求类型
                data: formData, // 使用 FormData 对象作为表单数据
                processData: false, // 禁用 jQuery 的默认数据处理
                contentType: false, // 禁用 jQuery 的默认内容类型处理
                xhrFields: {
                    responseType: 'blob' // 设置响应类型为 blob
                },
                success: function(blob,status,xhr) {
                    var filename = '汇总结果.xlsx'; // 默认文件名
                    var disposition = xhr.getResponseHeader('Content-Disposition');
                    if (disposition && disposition.indexOf('attachment') !== -1) {
                        var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
                        var matches = filenameRegex.exec(disposition);
                        if (matches != null && matches[1]) {
                            filename = matches[1].replace(/['"]/g, '');
                        }
                    }

                    var a = document.createElement('a');
                    var url = window.URL.createObjectURL(blob);
                    a.href = url;
                    a.download = filename; // 设置下载文件的文件名
                    a.click();
                    window.URL.revokeObjectURL(url);
                },
                error: function(xhr, status, error) {
                    // 请求失败时的处理
                    console.log(error);
                }
            });
        });
    });
</script>
</html>